package com.lx.es.query.test.dto;

import cn.lx.es.query.annotation.ESMetaData;
import cn.lx.es.query.annotation.ESID;
import cn.lx.es.query.search.entity.PageSortHighLight;
import cn.lx.es.query.annotation.MatchSearch;
import cn.lx.es.query.annotation.TermSearch;
import cn.lx.es.query.annotation.TermsSearch;
import cn.lx.es.query.annotation.RangeSearch;
import cn.lx.es.query.search.entity.Range;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 药品搜索DTO
 *
 * @author test
 * @date 2025-01-02
 */
@ESMetaData(indexName = "bdc-drug-info")
public class DrugSearchDTO extends PageSortHighLight {

    /**
     * 药品信息id
     */
    @ESID
    private Long drugInfoId;

    /**
     * 药品代码 - 精确匹配
     */
    @TermSearch
    private String drugCode;

    /**
     * 药品名称 - 分词匹配
     */
    @MatchSearch
    private String drugName;

    /**
     * 通用名称 - 分词匹配
     */
    @MatchSearch
    private String genname;

    /**
     * 剂型名称 - 精确匹配
     */
    @TermSearch
    private String dosformName;

    /**
     * 给药途径名称 - 精确匹配
     */
    @TermSearch
    private String ruteName;

    /**
     * 药理分类名称 - 多值匹配
     */
    @TermsSearch
    private String phamTypeName1;

    /**
     * 规格名称 - 分词匹配
     */
    @MatchSearch
    private String specName;

    /**
     * 生产企业名称 - 分词匹配
     */
    @MatchSearch
    private String prodentpName;

    /**
     * 代理企业名称 - 分词匹配
     */
    @MatchSearch
    private String prxyEntpName;

    /**
     * 产品类型名称 - 精确匹配
     */
    @TermSearch
    private String prodTypeName;

    /**
     * 批准文号 - 精确匹配
     */
    @TermSearch
    private String aprvno;

    /**
     * 日均使用量 - 范围查询
     */
    @RangeSearch
    private String dayuse;

    /**
     * 基药标志 - 精确匹配
     */
    @TermSearch
    private String essdrugFlag;

    /**
     * 黑名单标志 - 精确匹配
     */
    @TermSearch
    private String bklsFlag;

    /**
     * 医保标志 - 精确匹配
     */
    @TermSearch
    private String hiType;

    // getter和setter方法
    public Long getDrugInfoId() {
        return drugInfoId;
    }

    public void setDrugInfoId(Long drugInfoId) {
        this.drugInfoId = drugInfoId;
    }

    public String getDrugCode() {
        return drugCode;
    }

    public void setDrugCode(String drugCode) {
        this.drugCode = drugCode;
    }

    public String getDrugName() {
        return drugName;
    }

    public void setDrugName(String drugName) {
        this.drugName = drugName;
    }

    public String getGenname() {
        return genname;
    }

    public void setGenname(String genname) {
        this.genname = genname;
    }

    public String getDosformName() {
        return dosformName;
    }

    public void setDosformName(String dosformName) {
        this.dosformName = dosformName;
    }

    public String getRuteName() {
        return ruteName;
    }

    public void setRuteName(String ruteName) {
        this.ruteName = ruteName;
    }

    public String getPhamTypeName1() {
        return phamTypeName1;
    }

    public void setPhamTypeName1(String phamTypeName1) {
        this.phamTypeName1 = phamTypeName1;
    }

    public String getSpecName() {
        return specName;
    }

    public void setSpecName(String specName) {
        this.specName = specName;
    }

    public String getProdentpName() {
        return prodentpName;
    }

    public void setProdentpName(String prodentpName) {
        this.prodentpName = prodentpName;
    }

    public String getPrxyEntpName() {
        return prxyEntpName;
    }

    public void setPrxyEntpName(String prxyEntpName) {
        this.prxyEntpName = prxyEntpName;
    }

    public String getProdTypeName() {
        return prodTypeName;
    }

    public void setProdTypeName(String prodTypeName) {
        this.prodTypeName = prodTypeName;
    }

    public String getAprvno() {
        return aprvno;
    }

    public void setAprvno(String aprvno) {
        this.aprvno = aprvno;
    }

    public String getDayuse() {
        return dayuse;
    }

    public void setDayuse(String dayuse) {
        this.dayuse = dayuse;
    }

    public String getEssdrugFlag() {
        return essdrugFlag;
    }

    public void setEssdrugFlag(String essdrugFlag) {
        this.essdrugFlag = essdrugFlag;
    }

    public String getBklsFlag() {
        return bklsFlag;
    }

    public void setBklsFlag(String bklsFlag) {
        this.bklsFlag = bklsFlag;
    }

    public String getHiType() {
        return hiType;
    }

    public void setHiType(String hiType) {
        this.hiType = hiType;
    }
}
